package business;

import business.EmpregadoBO;
import business.EmpregadoException;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

public class EmpregadoBOTestNome {
    
    public EmpregadoBOTestNome() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }
    
    @Before
    public void setUp() {
    }
    
    @After
    public void tearDown() {
    }
    
    /**
     * Testes do método que verifica se o nome do empregado possui no máximo 100 caracteres.
     * 
     * @author Zeno
     * 
     */
    
    @Test
    public void testNomeComTamanhoMenorQueTamanhoMaximo() throws EmpregadoException {
        String nome = "Carlo Alberto Torres Nascimento Bueno Gonçalves da Silva Correa do Santos Pinto Costa Veiga Pereir";
        nomeValido(nome);
    }
    
    @Test
    public void testNomeComTamanhoMaximo() throws EmpregadoException {
        String nome = "Carlo Alberto Torres Nascimento Bueno Gonçalves da Silva Correa dos Santos Pinto Costa Veiga Pereir";
        nomeValido(nome);
    }
    
    @Test(expected = EmpregadoException.class) 
    public void testNomeComTamanhoMaiorQueTamanhoMaximo() throws EmpregadoException {
        String nome = "Carlos Alberto Torres Nascimento Bueno Gonçalves da Silva Correa dos Santos Pinto Costa Veiga Pereira";
        nomeInvalido(nome);
    }
    
    private void nomeValido(String nome) throws EmpregadoException {
        boolean valido = EmpregadoBO.getInstance().validaNome(nome);
        assertEquals(true, valido);
    }
    
    private void nomeInvalido(String nome) throws EmpregadoException {
        boolean invalido = EmpregadoBO.getInstance().validaNome(nome);
    }
    
}
